草庐IT

javascript - CommonJS 模块在哪里?

全部标签

ruby - 从 Ruby 中的模块/mixin 继承类方法

众所周知,在Ruby中,类方法是继承的:classPdefself.mm;puts'abc'endendclassQ然而,令我惊讶的是它不适用于mixin:moduleMdefself.mm;puts'mixin'endendclassN;includeMendM.mm#worksN.mm#doesnotwork!我知道#extend方法可以做到这一点:moduleX;defmm;puts'extender'endendY=Class.new.extendXX.mm#works但我正在编写一个包含实例方法和类方法的混合(或者更确切地说,我想编写):moduleCommondefself

ruby - Ruby 中的私有(private)方法应该放在哪里?

大多数博客或教程或书籍在任何类/模块的底部都有私有(private)方法。这是最佳做法吗?我发现在必要时使用私有(private)方法更方便。例如:publicdefmy_method#dosomethingminion_methodendprivatedefminion_method#dosomethingendpublicdefnext_methodend这样我发现代码更具可读性,而不是不断地上下滚动,这非常令人恼火。这种方法有什么严重的错误吗?在底部使用私有(private)方法是否不仅仅是一种最佳实践和其他东西? 最佳答案

ruby - Ruby 中的私有(private)模块方法

我有一个两部分的问题最佳实践我有一个算法可以使用公共(public)接口(interface)对数据结构执行某些操作它目前是一个包含许多静态方法的模块,除了一个公共(public)接口(interface)方法外,所有静态方法都是私有(private)的。有一个实例变量需要在所有方法之间共享。这些是我能看到的选项,哪个是最好的?:模块带有静态(ruby中的“模块”)方法Class使用静态方法Mixin模块用于包含到数据结构中重构修改该数据结构(非常小)的算法部分,并使其成为调用算法模块静态方法的混合技术部分有什么方法可以制作私有(private)模块方法?moduleThingdefs

ruby-on-rails - Rails 模块中的 mattr_accessor 是什么?

我真的无法在Rails文档中找到它,但似乎'mattr_accessor'是'attr_accessor'的模块推论(getter和setter)在普通的Ruby类中。例如。在类里面classUserattr_accessor:namedefset_fullname@name="#{self.first_name}#{self.last_name}"endend例如。在模块中moduleAuthenticationmattr_accessor:current_userdeflogin@current_user=session[:user_id]||nilendend此辅助方法由Acti

ruby-on-rails - xxx 的副本已从模块树中删除但仍处于事件状态

我很确定该错误与TenantIdLoader模块的实际内容无关。相反,它与ActiveSupport依赖关系有关。我似乎无法克服这个错误。根据我的阅读,这是因为要么ActiveRecord::Base正在重新加载,要么是Company::TenantIdLoader正在重新加载,并且它以某种方式无法传达这一点。请帮忙!我非常希望能够升级到Rails4.2。编辑我现在了解到这是因为我正在引用自动重新加载的Tenant。不过,我需要能够实际引用该类,所以有人知道如何解决这个问题吗?配置/应用程序.rbconfig.autoload_paths+=%W(#{config.root}/lib/

ruby-on-rails - 在 Ruby 和/或 Rails 中在哪里定义自定义错误类型?

是否有在Ruby库(gem)或RubyonRails应用程序中定义自定义错误类型的最佳实践?具体来说:他们在项目结构上属于哪个位置?一个单独的文件,内联相关的模块/类定义,在其他地方?是否有任何约定可以确定何时以及何时不创建新的错误类型?不同的图书馆有不同的做事方式,我还没有注意到任何真正的模式。一些库总是使用自定义错误类型,而另一些库则根本不使用它们;有些具有扩展标准错误的所有错误,而另一些则具有嵌套的层次结构;有些只是空的类定义,有些则有各种巧妙的技巧。哦,只是因为我觉得称这些“错误类型”有点模棱两可,我的意思是:classAuthenticationError

ruby - 我可以在不包含 Ruby 模块的情况下调用实例方法吗?

背景:我有一个模块声明了一些实例方法moduleUsefulThingsdefget_file;...defdelete_file;...defformat_text(x);...end我想从一个类中调用其中一些方法。你通常如何在ruby​​中这样做:classUsefulWorkerincludeUsefulThingsdefdo_workformat_text("abc")...endend问题includeUsefulThings从UsefulThings引入所有方法。在这种情况下,我只需要format_text并且明确不需要get_file和delete_file。我可以看到几

ruby - 在 RSpec 中测试模块

在RSpec中测试模块的最佳实践是什么?我有一些模块包含在少数模型中,现在我只是对每个模型进行重复测试(几乎没有差异)。有没有办法让它干起来? 最佳答案 最好的方式=>let(:dummy_class){Class.new{includeModuleToBeTested}}或者你可以用你的模块扩展测试类:let(:dummy_class){Class.new{extendModuleToBeTested}}在before(:each)中使用'let'比使用实例变量定义虚拟类要好WhentouseRSpeclet()?

ruby - 类和模块的区别

我来自Java,现在我更多地使用Ruby。我不熟悉的一个语言特性是模块。我想知道module到底是什么,什么时候使用它,为什么要在class上使用module? 最佳答案 ╔═══════════════╦═══════════════════════════╦═════════════════════════════════╗║║class║module║╠═══════════════╬═══════════════════════════╬═════════════════════════════════╣║instantia

javascript - 在 JavaScript 中使用 setTimeout() 和 setInterval() 时调用函数

这个问题在这里已经有了答案:Whatisthedifferencebetweenafunctioncallandfunctionreference?(6个答案)关闭1年前。如果我使用不带括号的setTimeout()和setInterval()调用命名函数,它会按预期工作。当我用括号调用同一个函数时,它要么立即执行要么给出错误。与我在网上找到的内容相比,我正在寻找对此事更深入的了解。你们能给我解释一下为什么这是真的吗?varfunc=function(){console.log("Bowtiesarecool.");}setTimeout(func(),1500);//Prints"B